import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler, LabelEncoder
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import classification_report, confusion_matrix, roc_auc_score
from sklearn.inspection import permutation_importance
import warnings
warnings.filterwarnings('ignore')

# 设置中文字体支持
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

class ComprehensiveSocialMediaAnalysis:
    def __init__(self):
        self.df = None
        self.processed_df = None
        self.model = None
        self.scaler = StandardScaler()
        self.label_encoders = {}
        self.results = {}
        self.X_train = None
        self.X_test = None
        self.y_train = None
        self.y_test = None
        
    def load_data(self, file_path):
        """
        加载实际的社交媒体数据集
        """
        print("1. 加载数据集...")
        try:
            self.df = pd.read_csv(file_path)
            print(f"✓ 成功加载数据集，共{len(self.df)}条记录")
            return True
        except Exception as e:
            print(f"✗ 加载数据集失败: {str(e)}")
            return False
    
    def data_overview(self):
        """
        数据集概览分析
        """
        print("2. 执行数据集概览分析...")
        
        # 基本信息
        overview = {
            '总样本数': len(self.df),
            '特征数量': len(self.df.columns),
            '缺失值统计': self.df.isnull().sum().to_dict(),
            '数据类型': self.df.dtypes.to_dict(),
            '数值型特征描述': self.df.describe().to_dict()
        }
        
        # 记录分类特征的类别分布
        categorical_cols = ['Gender', 'Academic_Level', 'Country', 'Most_Used_Platform', 
                           'Affects_Academic_Performance', 'Relationship_Status']
        category_distributions = {}
        for col in categorical_cols:
            if col in self.df.columns:
                category_distributions[col] = self.df[col].value_counts().to_dict()
        
        self.results['数据概览'] = {
            '基本信息': overview,
            '类别分布': category_distributions
        }
        
        print("✓ 数据集概览分析完成")
        return overview, category_distributions
    
    def preprocess_data(self):
        """
        数据预处理
        """
        print("3. 执行数据预处理...")
        
        # 创建副本
        self.processed_df = self.df.copy()
        
        # 编码分类变量
        categorical_cols = ['Gender', 'Academic_Level', 'Country', 'Most_Used_Platform', 
                           'Relationship_Status', 'Affects_Academic_Performance']
        
        for col in categorical_cols:
            if col in self.processed_df.columns:
                le = LabelEncoder()
                # 处理未知类别（如果有的话）
                if self.processed_df[col].isnull().any():
                    self.processed_df[col] = self.processed_df[col].fillna('Unknown')
                
                self.processed_df[col] = le.fit_transform(self.processed_df[col].astype(str))
                self.label_encoders[col] = le
        
        print("✓ 数据预处理完成")
        return self.processed_df
    
    def correlation_analysis(self):
        """
        相关性分析
        """
        print("4. 执行相关性分析...")
        
        # 计算相关系数矩阵
        numeric_cols = self.processed_df.select_dtypes(include=[np.number]).columns
        corr_matrix = self.processed_df[numeric_cols].corr()
        
        # 找出与心理健康评分相关性最高的特征
        if 'Mental_Health_Score' in corr_matrix.columns:
            mental_health_corr = corr_matrix['Mental_Health_Score'].abs().sort_values(ascending=False)
        else:
            mental_health_corr = None
        
        # 找出与学习成绩影响相关性最高的特征
        if 'Affects_Academic_Performance' in corr_matrix.columns:
            academic_affect_corr = corr_matrix['Affects_Academic_Performance'].abs().sort_values(ascending=False)
        else:
            academic_affect_corr = None
        
        self.results['相关性分析'] = {
            '相关系数矩阵': corr_matrix,
            '与心理健康评分相关性': mental_health_corr,
            '与学习成绩影响相关性': academic_affect_corr
        }
        
        print("✓ 相关性分析完成")
        return corr_matrix
    
    def platform_analysis(self):
        """
        不同社交平台使用情况分析
        """
        print("5. 执行平台使用分析...")
        
        if 'Most_Used_Platform' in self.df.columns and 'Most_Used_Platform' in self.label_encoders:
            # 获取原始平台名称
            platform_names = self.label_encoders['Most_Used_Platform'].classes_
            platform_stats = {}
            
            # 分析每个平台的用户特征
            for i, platform in enumerate(platform_names):
                platform_data = self.processed_df[self.processed_df['Most_Used_Platform'] == i]
                
                # 计算平台的平均指标
                avg_metrics = {
                    '用户数量': len(platform_data),
                    '平均日使用时长(小时)': platform_data['Avg_Daily_Usage_Hours'].mean(),
                    '平均心理健康评分': platform_data['Mental_Health_Score'].mean() if 'Mental_Health_Score' in platform_data.columns else None,
                    '平均睡眠时长(小时)': platform_data['Sleep_Hours_Per_Night'].mean() if 'Sleep_Hours_Per_Night' in platform_data.columns else None,
                    '平均成瘾评分': platform_data['Addicted_Score'].mean() if 'Addicted_Score' in platform_data.columns else None,
                    '学习成绩受影响比例': platform_data['Affects_Academic_Performance'].mean() if 'Affects_Academic_Performance' in platform_data.columns else None,
                    '平均社交冲突次数': platform_data['Conflicts_Over_Social_Media'].mean() if 'Conflicts_Over_Social_Media' in platform_data.columns else None
                }
                
                platform_stats[platform] = avg_metrics
            
            self.results['平台分析'] = platform_stats
            print("✓ 平台使用分析完成")
            return platform_stats
        else:
            print("✗ 平台数据不可用，跳过平台分析")
            return None
    
    def mental_health_analysis(self):
        """
        心理健康与社交媒体使用关系分析
        """
        print("6. 执行心理健康与社交媒体关系分析...")
        
        if 'Mental_Health_Score' in self.df.columns:
            # 分析心理健康与各变量的关系
            mental_health_analysis = {}
            
            # 心理健康与使用时长的关系
            usage_mental_health = self.df.groupby(pd.cut(self.df['Avg_Daily_Usage_Hours'], bins=5))['Mental_Health_Score'].mean().to_dict()
            mental_health_analysis['使用时长与心理健康'] = usage_mental_health
            
            # 心理健康与睡眠的关系
            if 'Sleep_Hours_Per_Night' in self.df.columns:
                sleep_mental_health = self.df.groupby(pd.cut(self.df['Sleep_Hours_Per_Night'], bins=5))['Mental_Health_Score'].mean().to_dict()
                mental_health_analysis['睡眠时长与心理健康'] = sleep_mental_health
            
            # 心理健康与成瘾评分的关系
            if 'Addicted_Score' in self.df.columns:
                addiction_mental_health = self.df.groupby(pd.cut(self.df['Addicted_Score'], bins=5))['Mental_Health_Score'].mean().to_dict()
                mental_health_analysis['成瘾程度与心理健康'] = addiction_mental_health
            
            # 心理健康与社交冲突的关系
            if 'Conflicts_Over_Social_Media' in self.df.columns:
                conflict_mental_health = self.df.groupby('Conflicts_Over_Social_Media')['Mental_Health_Score'].mean().to_dict()
                mental_health_analysis['社交冲突与心理健康'] = conflict_mental_health
            
            self.results['心理健康分析'] = mental_health_analysis
            print("✓ 心理健康分析完成")
            return mental_health_analysis
        else:
            print("✗ 心理健康数据不可用，跳过心理健康分析")
            return None
    
    def build_prediction_model(self):
        """
        构建预测模型，预测学习成绩受影响情况
        """
        print("7. 构建预测模型...")
        
        if 'Affects_Academic_Performance' in self.processed_df.columns:
            # 准备特征和目标变量
            feature_cols = [col for col in self.processed_df.columns 
                           if col not in ['Student_ID', 'Affects_Academic_Performance']]
            
            X = self.processed_df[feature_cols]
            y = self.processed_df['Affects_Academic_Performance']
            
            # 数据标准化
            X_scaled = self.scaler.fit_transform(X)
            
            # 划分训练集和测试集
            self.X_train, self.X_test, self.y_train, self.y_test = train_test_split(
                X_scaled, y, test_size=0.2, random_state=42, stratify=y
            )
            
            # 创建并训练随机森林模型
            self.model = RandomForestClassifier(n_estimators=100, random_state=42)
            self.model.fit(self.X_train, self.y_train)
            
            # 模型评估
            y_pred = self.model.predict(self.X_test)
            y_pred_proba = self.model.predict_proba(self.X_test)[:, 1]
            
            model_performance = {
                '分类报告': classification_report(self.y_test, y_pred, output_dict=True),
                '混淆矩阵': confusion_matrix(self.y_test, y_pred).tolist(),
                'ROC AUC分数': roc_auc_score(self.y_test, y_pred_proba)
            }
            
            # 特征重要性分析
            feature_importance = pd.Series(
                self.model.feature_importances_, index=feature_cols
            ).sort_values(ascending=False)
            
            # 排列重要性分析
            perm_importance = permutation_importance(
                self.model, self.X_test, self.y_test, n_repeats=10, random_state=42
            )
            perm_importance_series = pd.Series(
                perm_importance.importances_mean, index=feature_cols
            ).sort_values(ascending=False)
            
            self.results['预测模型'] = {
                '性能评估': model_performance,
                '特征重要性': feature_importance,
                '排列重要性': perm_importance_series
            }
            
            print("✓ 预测模型构建完成")
            return model_performance
        else:
            print("✗ 目标变量不可用，跳过预测模型构建")
            return None
    
    def generate_theoretical_framework(self):
        """
        基于分析结果构建系统性理论框架
        """
        print("8. 构建系统性理论框架...")
        
        # 提取关键发现
        key_findings = []
        
        # 从相关性分析提取发现
        if '相关性分析' in self.results:
            corr_matrix = self.results['相关性分析']['相关系数矩阵']
            if 'Mental_Health_Score' in corr_matrix.columns:
                mental_corr = corr_matrix['Mental_Health_Score']
                strong_corrs = mental_corr[abs(mental_corr) > 0.3]
                for feature, corr_value in strong_corrs.items():
                    if feature != 'Mental_Health_Score':
                        key_findings.append(f"{feature}与心理健康评分的相关性为{corr_value:.3f}")
            
        # 从平台分析提取发现
        if '平台分析' in self.results:
            platform_stats = self.results['平台分析']
            # 找出平均成瘾评分最高的平台
            max_addiction_platform = max(platform_stats.items(), 
                                        key=lambda x: x[1]['平均成瘾评分'] if x[1]['平均成瘾评分'] is not None else 0)
            key_findings.append(f"{max_addiction_platform[0]}的平均成瘾评分最高({max_addiction_platform[1]['平均成瘾评分']:.2f})")
            
            # 找出学习成绩受影响比例最高的平台
            max_academic_impact_platform = max(platform_stats.items(), 
                                              key=lambda x: x[1]['学习成绩受影响比例'] if x[1]['学习成绩受影响比例'] is not None else 0)
            key_findings.append(f"{max_academic_impact_platform[0]}用户中学习成绩受影响的比例最高")
        
        # 从心理健康分析提取发现
        if '心理健康分析' in self.results:
            mental_health_analysis = self.results['心理健康分析']
            if '使用时长与心理健康' in mental_health_analysis:
                usage_mental = mental_health_analysis['使用时长与心理健康']
                # 检查是否存在负相关趋势
                usage_bins = list(usage_mental.keys())
                scores = list(usage_mental.values())
                if len(scores) >= 2 and scores[-1] < scores[0]:
                    key_findings.append("随着使用时长增加，心理健康评分呈现下降趋势")
        
        # 从预测模型提取发现
        if '预测模型' in self.results:
            feature_importance = self.results['预测模型']['特征重要性']
            top_features = feature_importance.head(3)
            key_findings.append(f"预测学习成绩受影响的最重要三个特征是：{', '.join(top_features.index)}")
        
        # 构建理论框架
        theoretical_framework = {
            '核心发现': key_findings,
            '理论模型': "社交媒体使用对学生发展的多维影响模型",
            '理论假设': [
                "社交媒体使用时长是影响学生心理健康和学业表现的关键因素",
                "不同社交平台因其设计特性和使用方式，对学生的影响存在显著差异",
                "社交媒体成瘾倾向与心理健康水平呈负相关关系",
                "睡眠质量在社交媒体使用与心理健康之间可能起到中介作用",
                "个体特征（如年龄、性别、学术水平）可能调节社交媒体对学生的影响"
            ],
            '理论贡献': [
                "整合了心理健康、学业表现和行为习惯三个维度的分析",
                "识别出了社交媒体使用影响学生发展的关键路径和调节变量",
                "为学校和家长制定社交媒体使用指导政策提供了理论依据"
            ]
        }
        
        self.results['理论框架'] = theoretical_framework
        print("✓ 系统性理论框架构建完成")
        return theoretical_framework
    
    def generate_recommendations(self):
        """
        基于分析结果和理论框架生成建议措施
        """
        print("9. 生成建议措施...")
        
        recommendations = {
            '对学生的建议': [
                "控制每日社交媒体使用时间在3小时以内，避免过度使用",
                "选择对心理健康影响较小的社交平台",
                "建立健康的睡眠习惯，保证每晚7-8小时的睡眠时间",
                "积极参与线下社交活动，保持现实中的人际关系",
                "定期进行数字排毒，给自己设定无社交媒体时段"
            ],
            '对教育机构的建议': [
                "开展社交媒体素养教育课程，帮助学生理性使用社交媒体",
                "建立学生心理健康监测机制，及时发现和干预潜在问题",
                "组织丰富多彩的校园活动，减少学生对社交媒体的依赖",
                "提供心理咨询服务，帮助学生应对社交媒体带来的压力",
                "制定合理的手机和社交媒体使用规则"
            ],
            '对家长的建议': [
                "与孩子建立开放的沟通渠道，了解其社交媒体使用情况",
                "为孩子树立健康使用社交媒体的榜样",
                "设定家庭手机使用时间和规则",
                "关注孩子的情绪变化和行为异常，及时干预",
                "鼓励孩子参与户外活动和兴趣爱好"
            ],
            '对平台开发者的建议': [
                "设计更健康的用户界面和功能，减少用户沉迷",
                "增加使用时间提醒和健康使用模式",
                "优化算法，减少有害内容的传播",
                "加强用户隐私保护",
                "开发促进积极社交互动的功能"
            ]
        }
        
        self.results['建议措施'] = recommendations
        print("✓ 建议措施生成完成")
        return recommendations
    
    def visualize_results(self, output_dir='./'):
        """
        可视化分析结果
        """
        print("10. 可视化分析结果...")
        
        # 相关性热力图
        if '相关性分析' in self.results:
            corr_matrix = self.results['相关性分析']['相关系数矩阵']
            plt.figure(figsize=(12, 10))
            mask = np.triu(np.ones_like(corr_matrix, dtype=bool))
            sns.heatmap(corr_matrix, annot=True, fmt=".2f", cmap='coolwarm', 
                        mask=mask, square=True, linewidths=.5)
            plt.title('特征相关性热力图')
            plt.tight_layout()
            plt.savefig(f'{output_dir}correlation_heatmap.png', dpi=300)
            plt.close()
        
        # 平台对比图
        if '平台分析' in self.results:
            platform_stats = self.results['平台分析']
            platforms = list(platform_stats.keys())
            
            # 使用时长对比
            usage_hours = [stats['平均日使用时长(小时)'] for stats in platform_stats.values()]
            plt.figure(figsize=(12, 6))
            sns.barplot(x=platforms, y=usage_hours)
            plt.xticks(rotation=45)
            plt.title('不同平台的平均日使用时长对比')
            plt.tight_layout()
            plt.savefig(f'{output_dir}platform_usage_comparison.png', dpi=300)
            plt.close()
            
            # 心理健康评分对比
            mental_health_scores = [stats['平均心理健康评分'] for stats in platform_stats.values()]
            plt.figure(figsize=(12, 6))
            sns.barplot(x=platforms, y=mental_health_scores)
            plt.xticks(rotation=45)
            plt.title('不同平台用户的平均心理健康评分对比')
            plt.tight_layout()
            plt.savefig(f'{output_dir}platform_mental_health_comparison.png', dpi=300)
            plt.close()
        
        # 心理健康与使用时长关系图
        if '心理健康分析' in self.results and '使用时长与心理健康' in self.results['心理健康分析']:
            usage_mental_health = self.results['心理健康分析']['使用时长与心理健康']
            bins = [str(bin) for bin in usage_mental_health.keys()]
            scores = list(usage_mental_health.values())
            
            plt.figure(figsize=(10, 6))
            sns.lineplot(x=bins, y=scores, marker='o')
            plt.xticks(rotation=45)
            plt.title('社交媒体使用时长与心理健康评分的关系')
            plt.xlabel('每日使用时长区间(小时)')
            plt.ylabel('平均心理健康评分')
            plt.tight_layout()
            plt.savefig(f'{output_dir}usage_mental_health_relationship.png', dpi=300)
            plt.close()
        
        # 特征重要性图
        if '预测模型' in self.results:
            feature_importance = self.results['预测模型']['特征重要性']
            plt.figure(figsize=(12, 8))
            feature_importance.head(10).plot(kind='barh')
            plt.title('预测模型的特征重要性(前10名)')
            plt.tight_layout()
            plt.savefig(f'{output_dir}feature_importance.png', dpi=300)
            plt.close()
        
        print("✓ 可视化结果生成完成")
    
    def save_analysis_report(self, filename='comprehensive_social_media_analysis_report.txt'):
        """
        保存综合分析报告
        """
        print(f"11. 保存分析报告到 {filename}...")
        
        with open(filename, 'w', encoding='utf-8') as f:
            f.write("=" * 80 + "\n")
            f.write("          学生社交媒体与人际关系数据集综合分析报告\n")
            f.write("=" * 80 + "\n\n")
            
            # 1. 数据概览
            f.write("1. 数据概览\n")
            f.write("-" * 60 + "\n")
            if '数据概览' in self.results:
                overview = self.results['数据概览']['基本信息']
                f.write(f"总样本数: {overview['总样本数']}\n")
                f.write(f"特征数量: {overview['特征数量']}\n")
                f.write(f"缺失值统计: {overview['缺失值统计']}\n")
                f.write("\n主要类别分布:\n")
                for col, dist in self.results['数据概览']['类别分布'].items():
                    f.write(f"  {col}:\n")
                    # 只显示前5个类别
                    top_categories = dict(list(dist.items())[:5])
                    for cat, count in top_categories.items():
                        f.write(f"    {cat}: {count}\n")
                    if len(dist) > 5:
                        f.write(f"    ... 还有{len(dist)-5}个类别\n")
            
            # 2. 相关性分析
            f.write("\n2. 相关性分析\n")
            f.write("-" * 60 + "\n")
            if '相关性分析' in self.results:
                if self.results['相关性分析']['与心理健康评分相关性'] is not None:
                    f.write("与心理健康评分相关性最高的5个特征:\n")
                    top_corr = self.results['相关性分析']['与心理健康评分相关性'].head(6)
                    for feature, corr in top_corr.items():
                        if feature != 'Mental_Health_Score':
                            f.write(f"  {feature}: {corr:.3f}\n")
                
                if self.results['相关性分析']['与学习成绩影响相关性'] is not None:
                    f.write("\n与学习成绩受影响相关性最高的5个特征:\n")
                    top_academic_corr = self.results['相关性分析']['与学习成绩影响相关性'].head(6)
                    for feature, corr in top_academic_corr.items():
                        if feature != 'Affects_Academic_Performance':
                            f.write(f"  {feature}: {corr:.3f}\n")
            
            # 3. 平台分析
            f.write("\n3. 平台分析\n")
            f.write("-" * 60 + "\n")
            if '平台分析' in self.results:
                platform_stats = self.results['平台分析']
                # 按用户数量排序平台
                sorted_platforms = sorted(platform_stats.items(), 
                                         key=lambda x: x[1]['用户数量'], reverse=True)
                
                for platform, stats in sorted_platforms[:5]:  # 只显示前5个平台
                    f.write(f"{platform}:\n")
                    f.write(f"  用户数量: {stats['用户数量']}\n")
                    f.write(f"  平均日使用时长: {stats['平均日使用时长(小时)']:.2f}小时\n")
                    if stats['平均心理健康评分'] is not None:
                        f.write(f"  平均心理健康评分: {stats['平均心理健康评分']:.2f}\n")
                    if stats['平均成瘾评分'] is not None:
                        f.write(f"  平均成瘾评分: {stats['平均成瘾评分']:.2f}\n")
                    if stats['学习成绩受影响比例'] is not None:
                        f.write(f"  学习成绩受影响比例: {stats['学习成绩受影响比例']:.2%}\n")
            
            # 4. 心理健康分析
            f.write("\n4. 心理健康分析\n")
            f.write("-" * 60 + "\n")
            if '心理健康分析' in self.results:
                mental_health_analysis = self.results['心理健康分析']
                for analysis_type, data in mental_health_analysis.items():
                    f.write(f"{analysis_type}:\n")
                    # 显示部分数据
                    items_to_show = dict(list(data.items())[:5])
                    for key, value in items_to_show.items():
                        f.write(f"  {key}: {value:.2f}\n")
                    if len(data) > 5:
                        f.write(f"  ... 还有{len(data)-5}个数据点\n")
            
            # 5. 预测模型
            f.write("\n5. 预测模型评估\n")
            f.write("-" * 60 + "\n")
            if '预测模型' in self.results:
                model_performance = self.results['预测模型']['性能评估']
                f.write(f"ROC AUC分数: {model_performance['ROC AUC分数']:.4f}\n")
                f.write("\n分类报告摘要:\n")
                for class_label, metrics in model_performance['分类报告'].items():
                    if class_label.isdigit():
                        f.write(f"类别{class_label}:\n")
                        f.write(f"  精确度: {metrics['precision']:.4f}\n")
                        f.write(f"  召回率: {metrics['recall']:.4f}\n")
                        f.write(f"  F1分数: {metrics['f1-score']:.4f}\n")
                
                f.write("\n最重要的5个特征:\n")
                top_features = self.results['预测模型']['特征重要性'].head(5)
                for feature, importance in top_features.items():
                    f.write(f"  {feature}: {importance:.4f}\n")
            
            # 6. 理论框架
            f.write("\n6. 系统性理论框架\n")
            f.write("-" * 60 + "\n")
            if '理论框架' in self.results:
                theoretical_framework = self.results['理论框架']
                f.write(f"理论模型名称: {theoretical_framework['理论模型']}\n")
                
                f.write("\n核心发现:\n")
                for i, finding in enumerate(theoretical_framework['核心发现'], 1):
                    f.write(f"  {i}. {finding}\n")
                
                f.write("\n理论假设:\n")
                for i, hypothesis in enumerate(theoretical_framework['理论假设'], 1):
                    f.write(f"  {i}. {hypothesis}\n")
                
                f.write("\n理论贡献:\n")
                for i, contribution in enumerate(theoretical_framework['理论贡献'], 1):
                    f.write(f"  {i}. {contribution}\n")
            
            # 7. 建议措施
            f.write("\n7. 建议措施\n")
            f.write("-" * 60 + "\n")
            if '建议措施' in self.results:
                recommendations = self.results['建议措施']
                for target, recs in recommendations.items():
                    f.write(f"{target}:\n")
                    for i, rec in enumerate(recs, 1):
                        f.write(f"  {i}. {rec}\n")
                    f.write("\n")
            
            f.write("=" * 80 + "\n")
            f.write(f"分析完成时间: {pd.Timestamp.now().strftime('%Y-%m-%d %H:%M:%S')}\n")
            f.write("=" * 80 + "\n")
        
        print(f"✓ 分析报告已保存到: {filename}")
    
    def run_complete_analysis(self, file_path):
        """
        运行完整的分析流程
        """
        print("启动综合社交媒体数据分析...")
        
        # 1. 加载数据
        if not self.load_data(file_path):
            print("分析失败：无法加载数据集")
            return False
        
        # 2. 数据概览
        self.data_overview()
        
        # 3. 数据预处理
        self.preprocess_data()
        
        # 4. 相关性分析
        self.correlation_analysis()
        
        # 5. 平台分析
        self.platform_analysis()
        
        # 6. 心理健康分析
        self.mental_health_analysis()
        
        # 7. 构建预测模型
        self.build_prediction_model()
        
        # 8. 构建理论框架
        self.generate_theoretical_framework()
        
        # 9. 生成建议
        self.generate_recommendations()
        
        # 10. 可视化结果
        self.visualize_results()
        
        # 11. 保存报告
        self.save_analysis_report()
        
        print("\n综合分析完成！所有结果已保存。")
        return True

# 主程序
def main():
    # 创建分析器实例
    analyzer = ComprehensiveSocialMediaAnalysis()
    
    # 指定数据集路径
    data_file_path = "D:\\D\\学生社交媒体与人际关系数据集\\学生社交媒体与人际关系数据集\\学生社交媒体与人际关系数据集.csv"
    
    # 运行完整分析
    success = analyzer.run_complete_analysis(data_file_path)
    
    if success:
        print("\n分析摘要：")
        print("=" * 60)
        
        # 显示部分关键结果
        if '数据概览' in analyzer.results:
            print(f"总样本数: {analyzer.results['数据概览']['基本信息']['总样本数']}")
        
        if '相关性分析' in analyzer.results and analyzer.results['相关性分析']['与心理健康评分相关性'] is not None:
            top_corr = analyzer.results['相关性分析']['与心理健康评分相关性'].head(3)
            print("\n与心理健康评分相关性最高的3个特征:")
            for feature, corr in top_corr.items():
                if feature != 'Mental_Health_Score':
                    print(f"  {feature}: {corr:.3f}")
        
        if '理论框架' in analyzer.results:
            print("\n核心理论发现:")
            for i, finding in enumerate(analyzer.results['理论框架']['核心发现'][:3], 1):
                print(f"  {i}. {finding}")
        
        print("=" * 60)
    
if __name__ == "__main__":
    main()